The present invention relates to data storage systems. More particularly, the present invention relates to control of data storage systems for quality-of-service (QoS).
Due to such factors as advances in technology, reductions in computer hardware costs and growth of the World Wide Web, increasing quantities of digital data are being generated worldwide. For example, computer systems in businesses, government and homes are used to generate data in the form of text and other documents, databases, multi-media files, e-mail correspondence, web pages, transaction records, and so forth. As a result, data storage demands are enormous and are growing over time.
Driven by this increasing demand, data storage systems are becoming larger and more complex. For example, a modern data center may include tens of large arrays and thousands of logical volumes and file systems. Such a data center may serve the storage demands of a large organization or even multiple organizations.
Increasingly, organizations outsource their data storage and management needs to a storage service provider (SSP). The SSP allocates storage on its own disk arrays that it makes available to its customers. While an organization may serve its storage needs internally, by purchasing equipment and hiring appropriate personnel, the organization may also internally follow an SSP model for providing storage services to its separate divisions.
It would be desirable to be able to specify the level of service that each customer will receive, for example, in terms of capacity, availability and performance level. This can be difficult in the context of an SSP, however, because each customer presents an independent load to the SSP that competes for storage resources, such as cache space, disk, bus, and network bandwidth and process cycles of a storage controller. Further, storage systems are typically designed to provide best efforts service for all requests, regardless of their origin.
One approach for attempting to ensure that each workload receives adequate service is to over-provision the storage system with excess capacity and bandwidth. However, this technique is not generally cost-effective since the additional resources add to the cost of the system. Another approach is to assign separate physical resources (e.g., one or more dedicated disk arrays) to each workload. This technique tends to be inflexible in that additional capacity or bandwidth cannot generally be added in arbitrary increments and, instead, extensive reconfiguring may be required when the workload's requirements change.
Therefore, what is needed is an improved ability to specify the service level that a particular workload will receive from a storage system that handles multiple workloads. It is to this end that the present invention is directed.